home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / GXPrinterDrivers.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  53.7 KB  |  1,824 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        GXPrinterDrivers.a
  3. ;
  4. ;    Contains:    This file defines data types and API functions for printer driver development.
  5. ;
  6. ;    Version:    Technology:    Quickdraw GX 1.1
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__GXPRINTERDRIVERS__') = 'UNDEFINED' THEN
  21. __GXPRINTERDRIVERS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__SCALERTYPES__') = 'UNDEFINED' THEN
  25.     include 'ScalerTypes.a'
  26.     ENDIF
  27. ;        include 'Types.a'                                            ;
  28. ;            include 'ConditionalMacros.a'                            ;
  29. ;        include 'MixedMode.a'                                        ;
  30. ;        include 'GXMath.a'                                            ;
  31. ;            include 'FixMath.a'                                    ;
  32. ;        include 'SFNTTypes.a'                                        ;
  33. ;            include 'GXTypes.a'                                    ;
  34.  
  35.     IF &TYPE('__PRINTING__') = 'UNDEFINED' THEN
  36.     include 'Printing.a'
  37.     ENDIF
  38. ;        include 'Errors.a'                                            ;
  39. ;        include 'Quickdraw.a'                                        ;
  40. ;            include 'QuickdrawText.a'                                ;
  41. ;        include 'Dialogs.a'                                        ;
  42. ;            include 'Memory.a'                                        ;
  43. ;            include 'Menus.a'                                        ;
  44. ;            include 'Controls.a'                                    ;
  45. ;            include 'Windows.a'                                    ;
  46. ;                include 'Events.a'                                    ;
  47. ;                    include 'OSUtils.a'                            ;
  48. ;            include 'TextEdit.a'                                    ;
  49.  
  50.     IF &TYPE('__GXPRINTING__') = 'UNDEFINED' THEN
  51.     include 'GXPrinting.a'
  52.     ENDIF
  53. ;        include 'Collections.a'                                    ;
  54. ;        include 'Files.a'                                            ;
  55. ;            include 'Finder.a'                                        ;
  56. ;        include 'GXFonts.a'                                        ;
  57. ;        include 'Lists.a'                                            ;
  58. ;        include 'GXMessages.a'                                        ;
  59. gxManualFeedAlertPrefs     RECORD    0
  60. alertFlags                 ds.l   1        ; offset: $0 (0)        ;    Flags--first word is for driver's private use, the rest is predefined. 
  61. sizeof                     EQU *            ; size:   $4 (4)
  62.                         ENDR
  63.  
  64. ; typedef struct gxManualFeedAlertPrefs  gxManualFeedAlertPrefs, *gxManualFeedAlertPrefsPtr, **gxManualFeedAlertPrefsHdl
  65. ; Constants for the alertFlags field of gxManualFeedAlertPrefs.
  66.  
  67. gxShowAlerts                    EQU        $00000001            ; Show alerts for this desktop printer. 
  68. gxAlertOnPaperChange            EQU        $00000002            ; …only if the papertype changes. 
  69.  
  70. gxDefaultMFeedAlertSettings        EQU        (gxShowAlerts | gxAlertOnPaperChange)
  71.  
  72. ; Driver output settings structure for desktop printer gxDriverOutputType resource 
  73. gxDriverOutputSettings     RECORD    0
  74. driverflags                 ds.l   1        ; offset: $0 (0)        ;    Flags -- for use by driver. 
  75. outputSettings             ds.l   1        ; offset: $4 (4)        ;    Flags -- predefined. 
  76. sizeof                     EQU *            ; size:   $8 (8)
  77.                         ENDR
  78.  
  79. ; typedef struct gxDriverOutputSettings  gxDriverOutputSettings, *gxDriverOutputSettingsPtr, **gxDriverOutputSettingsHdl
  80. ; Constants for the outputSettings field of gxDriverOutputSettings. 
  81.  
  82. gxCanConfigureTrays                EQU        $00000001            ; Desktop printer represents a device with a paper feed. 
  83.  
  84. ; ------------------------------------------------------------------------------
  85. ;
  86. ;                        Printing Driver Constants and Types
  87. ;
  88. ;-------------------------------------------------------------------------------- 
  89. gxInputTraysMenuItem            EQU        -1                    ; Menu item number for "Input Trays..." 
  90.  
  91. ; Buffering and IO preferences-- this structure mirrors the 'iobm' resource 
  92. gxIOPrefsRec             RECORD    0
  93. communicationsOptions     ds.l   1        ; offset: $0 (0)        ; Standard or nonstandard I/O? 
  94. numBuffers                 ds.l   1        ; offset: $4 (4)        ; Requested number of buffers for QDGX to create 
  95. bufferSize                 ds.l   1        ; offset: $8 (8)        ; The size of each buffer 
  96. numReqBlocks             ds.l   1        ; offset: $C (12)        ; The number of async I/O request blocks which will be needed 
  97. openCloseTimeout         ds.l   1        ; offset: $10 (16)        ; The open/close timeout (in ticks) 
  98. readWriteTimeout         ds.l   1        ; offset: $14 (20)        ; The read/write timeout (in ticks) 
  99. sizeof                     EQU *            ; size:   $18 (24)
  100.                         ENDR
  101.  
  102. ; typedef struct gxIOPrefsRec  gxIOPrefsRec, *gxIOPrefsPtr, **gxIOPrefsHdl
  103. ; Constants for the communicationsOptions field of IOPrefsRec. 
  104.  
  105. gxUseCustomIO                    EQU        $00000001            ; Driver uses a non-standard IO mechanism 
  106.  
  107. ; Information about writing to a file 
  108. gxPrintDestinationRec     RECORD    0
  109. printToFile                 ds.b   1        ; offset: $0 (0)        ; True if output is to go to a file 
  110. padByte                     ds.b   1        ; offset: $1 (1)
  111. fSpec                     ds     FSSpec    ; offset: $2 (2)        ; If going to a file, the FSSpec for the file 
  112. includeFonts             ds.b   1        ; offset: $48 (72)        ; True if fonts are to be included 
  113. fileFormat                 ds.l   8        ; offset: $49 (73)        ; Format to write file 
  114.                          ORG 106
  115. sizeof                     EQU *            ; size:   $6A (106)
  116.                         ENDR
  117.  
  118. ; typedef struct gxPrintDestinationRec  gxPrintDestinationRec, *gxPrintDestinationPtr, **gxPrintDestinationHdl
  119. ; This structure is the content of each cell in the standard PACK LDEF 
  120. gxPortListRec             RECORD    0
  121. firstMarker                 ds.b   1        ; offset: $0 (0)        ; Markers to indicate icon or non-icon version 
  122. secondMarker             ds.b   1        ; offset: $1 (1)        ; if these are ≈ and ≈, then the cell is an icon cell. 
  123. ; Otherwise, it is assumed to be a standard text LDEF 
  124. ; cell 
  125. iconSuiteHandle             ds.l   1        ; offset: $2 (2)        ; The icon suite to draw for this cell 
  126. outputDriverName         ds.l   1        ; offset: $6 (6)        ; Handle to the output driver name (for serial) 
  127. inputDriverName             ds.l   1        ; offset: $A (10)        ; Handle to the input driver name (for serial) 
  128. iconName                 ds.l   64        ; offset: $E (14)        ; Name to draw under the icon 
  129. sizeof                     EQU *            ; size:   $10E (270)
  130.                         ENDR
  131.  
  132. ; typedef struct gxPortListRec  gxPortListRec, *gxPortListPtr
  133. ; ------------------------------------------------------------------------------
  134. ;
  135. ;                        Printing Driver Constants for resources in the desktop printer
  136. ;
  137. ;-------------------------------------------------------------------------------- 
  138.  
  139. gxDeviceCommunicationsID        EQU        0
  140.  
  141. ; ----------------------------------• 'prod' •---------------------------------- 
  142. ;
  143. ;      For PostScript devices, the device and version names of the device.
  144. ;      (0) product name is of type PString
  145. ;      (1) version is of type PString
  146. ;      (2) revision is of type PString
  147. ;      (3) vm available is of type long
  148. ;      (4) font stream type is of type scalerStreamTypeFlag
  149. ;      (5) language level is of type long
  150. ;
  151. gxPostscriptProductInfoType        EQU        'prod'
  152. gxPostscriptProductNameID        EQU        0
  153. gxPostscriptVersionID            EQU        1
  154. gxPostscriptRevisionID            EQU        2
  155. gxPostscriptVMAvailableID        EQU        3
  156. gxPostscriptFontStreamTypeID    EQU        4
  157. gxPostscriptLanguageLevelID        EQU        5
  158.  
  159. ; ------------------------------------------------------------------------------
  160. ;
  161. ;                        Printing Driver Constants for status alerts
  162. ;
  163. ;-------------------------------------------------------------------------------- 
  164. ; Structure passed in statusBuffer of StatusRecord for manual feed alert 
  165. gxManualFeedRecord         RECORD    0
  166. canAutoFeed                 ds.b   1        ; offset: $0 (0)        ; True if driver can switch to auto feed 
  167. paperTypeName             ds.l   8        ; offset: $1 (1)        ; Name of paperType to feed manually 
  168.                          ORG 34
  169. sizeof                     EQU *            ; size:   $22 (34)
  170.                         ENDR
  171.  
  172. ; typedef struct gxManualFeedRecord  gxManualFeedRecord
  173. ; Structure passed in statusBuffer of StatusRecord for out of paper alert 
  174. gxOutOfPaperRecord         RECORD    0
  175. paperTypeName             ds.l   8        ; offset: $0 (0)        ; Name of printing document 
  176. sizeof                     EQU *            ; size:   $20 (32)
  177.                         ENDR
  178.  
  179. ; typedef struct gxOutOfPaperRecord  gxOutOfPaperRecord
  180. ; The DITL id for the auto feed button in the manual feed alert 
  181.  
  182. gxAutoFeedButtonId                EQU        3
  183.  
  184. ; Status resource id for the alerts 
  185. gxUnivAlertStatusResourceId        EQU        -28508
  186.  
  187. ; Status resource indices for alerts 
  188. gxUnivManualFeedIndex            EQU        2
  189. gxUnivFailToPrintIndex            EQU        3
  190. gxUnivPaperJamIndex                EQU        4
  191. gxUnivOutOfPaperIndex            EQU        5
  192. gxUnivNoPaperTrayIndex            EQU        6
  193. gxUnivPrinterReadyIndex            EQU        7
  194. gxUnivAlertBeforeIndex            EQU        9
  195. gxUnivAlertAfterIndex            EQU        10
  196.  
  197. ; Allocation sizes for status buffers needed for automatic alerts 
  198. gxDefaultStatusBufferSize        EQU        10
  199. gxManualFeedStatusBufferSize    EQU        34
  200. gxOutOfPaperStatusBufferSize    EQU        42
  201.  
  202. ; ------------------------------------------------------------------------------
  203. ;
  204. ;                                Old Application Support
  205. ;
  206. ;-------------------------------------------------------------------------------- 
  207. ; The format of a 'cust' resource  
  208. gxCustomizationRec         RECORD    0
  209. horizontalResolution     ds.w   1        ; offset: $0 (0)        ; Horizontal res (integral part) 
  210. verticalResolution         ds.w   1        ; offset: $2 (2)        ; Vertical res (integral part) 
  211. upDriverType             ds.w   1        ; offset: $4 (4)        ; "upDriver" emulation type 
  212. patternStretch             ds     Point    ; offset: $6 (6)        ; Pattern stretch factor 
  213. translatorSettings         ds.w   1        ; offset: $A (10)        ; Translator settings to use 
  214. sizeof                     EQU *            ; size:   $C (12)
  215.                         ENDR
  216.  
  217. ; typedef struct gxCustomizationRec  gxCustomizationRec, *gxCustomizationPtr, **gxCustomizationHdl
  218. ; The format of a 'resl' resource 
  219. gxResolutionRec         RECORD    0
  220. rangeType                 ds.w   1        ; offset: $0 (0)        ; Always 1 
  221. xMinimumResolution         ds.w   1        ; offset: $2 (2)        ; Min X resolution available 
  222. xMaximumResolution         ds.w   1        ; offset: $4 (4)        ; Max X resolution available 
  223. yMinimumResolution         ds.w   1        ; offset: $6 (6)        ; Min Y resolution available 
  224. yMaximumResolution         ds.w   1        ; offset: $8 (8)        ; Max Y resolution available 
  225. resolutionCount             ds.w   1        ; offset: $A (10)        ; Number of resolutions 
  226. resolutions                 ds     Point    ; offset: $C (12)        ; Array of resolutions 
  227. sizeof                     EQU *            ; size:   $10 (16)
  228.                         ENDR
  229.  
  230. ; typedef struct gxResolutionRec  gxResolutionRec, *gxResolutionPtr, **gxResolutionHdl
  231. ;
  232. ;
  233. ;        Constants for the "universal" print record.
  234. ;
  235. ;
  236. ; Constant for version number in universal print record 
  237.  
  238. gxPrintRecordVersion            EQU        8
  239.  
  240. ; Constants for feed field in universal print record 
  241. gxAutoFeed                        EQU        0
  242. gxManualFeed                    EQU        1
  243.  
  244. ; Constants for options field in universal print record 
  245. gxPreciseBitmap                    EQU        $0001                ; Tall adjusted (IW), precise bitmap (LW, SC) 
  246. gxBiggerPages                    EQU        $0002                ; No gaps (IW), larger print area (LW) 
  247. gxGraphicSmoothing                EQU        $0004                ; Graphic smoothing (LW) 
  248. gxTextSmoothing                    EQU        $0008                ; Text smoothing (SC) 
  249. gxFontSubstitution                EQU        $0010                ; Font substitution 
  250. gxInvertPage                    EQU        $0020                ; B/W invert image 
  251. gxFlipPageHoriz                    EQU        $0040                ; Flip horizontal 
  252. gxFlipPageVert                    EQU        $0080                ; Flip vertical 
  253. gxColorMode                        EQU        $0100                ; Color printing 
  254. gxBidirectional                    EQU        $0200                ; Bidirectional printing 
  255. gxUserFlag0                        EQU        $0400                ; User flag 0 
  256. gxUserFlag1                        EQU        $0800                ; User flag 1 
  257. gxUserFlag2                        EQU        $1000                ; User flag 2 
  258. gxReservedFlag0                    EQU        $2000                ; Reserved flag 0 
  259. gxReservedFlag1                    EQU        $4000                ; Reserved flag 1 
  260. gxReservedFlag2                    EQU        $8000                ; Reserved flag 2 
  261.  
  262. ; Constants for orientation field in universal print record 
  263. gxPortraitOrientation            EQU        0
  264. gxLandscapeOrientation            EQU        1
  265. gxAltPortraitOrientation        EQU        2
  266. gxAltLandscapeOrientation        EQU        3
  267.  
  268. ; Constants for qualityMode field in universal print record 
  269. gxBestQuality                    EQU        0
  270. gxFasterQuality                    EQU        1
  271. gxDraftQuality                    EQU        2
  272.  
  273. ; Constants for firstTray and remainingTray fields in universal print record 
  274. gxFirstTray                        EQU        0
  275. gxSecondTray                    EQU        1
  276. gxThirdTray                        EQU        2
  277.  
  278. ; Constants for coverPage field in universal print record 
  279. gxNoCoverPage                    EQU        0
  280. gxFirstPageCover                EQU        1
  281. gxLastPageCover                    EQU        2
  282.  
  283. ; Constants for headMotion field in universal print record 
  284. gxUnidirectionalMotion            EQU        0
  285. gxBidirectionalMotion            EQU        1
  286.  
  287. ; Constants for saveFile field in universal print record 
  288. gxNoFile                        EQU        0
  289. gxPostScriptFile                EQU        1
  290.  
  291. ; The format of the "universal" print record 
  292. gxUniversalPrintRecord     RECORD    0
  293. prVersion                 ds.w   1        ; offset: $0 (0)        ; Print record version 
  294. ;
  295. ;                                                        prInfo subrecord
  296. ;                                                
  297. appDev                     ds.w   1        ; offset: $2 (2)        ; Device kind, always 0 
  298. appVRes                     ds.w   1        ; offset: $4 (4)        ; Application vertical resolution 
  299. appHRes                     ds.w   1        ; offset: $6 (6)        ; Application horizontal resolution 
  300. appPage                     ds     Rect    ; offset: $8 (8)        ; Page size, in application resolution 
  301. appPaper                 ds     Rect    ; offset: $10 (16)        ; Paper rectangle [offset from rPage] 
  302. ;
  303. ;                                                        prStl subrecord
  304. ;                                                
  305. devType                     ds.w   1        ; offset: $18 (24)        ; Device type, always 0xA900 (was wDev) 
  306. pageV                     ds.w   1        ; offset: $1A (26)        ; Page height in 120ths of an inch 
  307. pageH                     ds.w   1        ; offset: $1C (28)        ; Page width in 120ths of an inch 
  308. fillByte                 ds.b   1        ; offset: $1E (30)        ; Page calculation mode 
  309. feed                     ds.b   1        ; offset: $1F (31)        ; Feed mode 
  310. ;
  311. ;                                                        prInfoPT subrecord
  312. ;                                                
  313. devKind                     ds.w   1        ; offset: $20 (32)        ; Device kind, always 0 
  314. devVRes                     ds.w   1        ; offset: $22 (34)        ; Device vertical resolution 
  315. devHRes                     ds.w   1        ; offset: $24 (36)        ; Device horizontal resolution 
  316. devPage                     ds     Rect    ; offset: $26 (38)        ; Device page size 
  317. ;
  318. ;                                                        prXInfo subrecord
  319. ;                                                
  320. actualCopies             ds.w   1        ; offset: $2E (46)        ; Actual number of copies for this job 
  321. options                     ds.w   1        ; offset: $30 (48)        ; Options for this device 
  322. reduction                 ds.w   1        ; offset: $32 (50)        ; Reduce/enlarge factor 
  323. orientation                 ds.b   1        ; offset: $34 (52)        ; Orientation of paper ( 0=portrait, 1=landscape ) 
  324. ;
  325. ;                                                        Clusters and PopUps
  326. ;                                                
  327. qualityMode                 ds.b   1        ; offset: $35 (53)        ; Quality mode 
  328. coverPage                 ds.b   1        ; offset: $36 (54)        ; Cover page 
  329. firstTray                 ds.b   1        ; offset: $37 (55)        ; First feed tray 
  330. remainingTray             ds.b   1        ; offset: $38 (56)        ; Remaining feed tray 
  331. headMotion                 ds.b   1        ; offset: $39 (57)        ; Head motion 
  332. saveFile                 ds.b   1        ; offset: $3A (58)        ; Save file 
  333. userCluster1             ds.b   1        ; offset: $3B (59)        ; Three clusters left over 
  334. userCluster2             ds.b   1        ; offset: $3C (60)
  335. userCluster3             ds.b   1        ; offset: $3D (61)
  336. ;
  337. ;                                                        prJob subrecord
  338. ;                                                
  339. firstPage                 ds.w   1        ; offset: $3E (62)        ; First page 
  340. lastPage                 ds.w   1        ; offset: $40 (64)        ; Last page 
  341. copies                     ds.w   1        ; offset: $42 (66)        ; Number of copies, always 1 
  342. reserved1                 ds.b   1        ; offset: $44 (68)        ; Always true, unused 
  343. reserved2                 ds.b   1        ; offset: $45 (69)        ; Always true, unused 
  344. pIdleProc                 ds.l   1        ; offset: $46 (70)        ; Idle proc 
  345. pFileName                 ds.l   1        ; offset: $4A (74)        ; Spool file name pointer 
  346. fileVol                     ds.w   1        ; offset: $4E (78)        ; Spool file vRefNum 
  347. fileVers                 ds.b   1        ; offset: $50 (80)        ; File version, must be 0 
  348. reserved3                 ds.b   1        ; offset: $51 (81)        ; Always 0 
  349. printX                     ds.w   19        ; offset: $52 (82)        ; Internal use 
  350. sizeof                     EQU *            ; size:   $78 (120)
  351.                         ENDR
  352.  
  353. ; typedef struct gxUniversalPrintRecord  gxUniversalPrintRecord, *gxUniversalPrintRecordPtr, **gxUniversalPrintRecordHdl
  354. ; ------------------------------------------------------------------------------
  355. ;
  356. ;                            Compatibility Printing Messages
  357. ;
  358. ;-------------------------------------------------------------------------------- 
  359. ;
  360. ; OSErr Forward_GXPrOpenDoc(THPrint hPrint, TPPrPort *pPort)
  361. ;
  362.     IF ¬ GENERATINGCFM THEN
  363.         Macro
  364.         _Forward_GXPrOpenDoc
  365.             moveq    #54,d0
  366.             dc.w     $ABFB
  367.         EndM
  368.     ELSE
  369.         IMPORT_CFM_FUNCTION    Forward_GXPrOpenDoc
  370.     ENDIF
  371.  
  372. ;
  373. ; OSErr Forward_GXPrCloseDoc(TPPrPort pPort)
  374. ;
  375.     IF ¬ GENERATINGCFM THEN
  376.         Macro
  377.         _Forward_GXPrCloseDoc
  378.             moveq    #54,d0
  379.             dc.w     $ABFB
  380.         EndM
  381.     ELSE
  382.         IMPORT_CFM_FUNCTION    Forward_GXPrCloseDoc
  383.     ENDIF
  384.  
  385. ;
  386. ; OSErr Forward_GXPrOpenPage(TPPrPort pPort, TPRect pRect, Point resolution)
  387. ;
  388.     IF ¬ GENERATINGCFM THEN
  389.         Macro
  390.         _Forward_GXPrOpenPage
  391.             moveq    #54,d0
  392.             dc.w     $ABFB
  393.         EndM
  394.     ELSE
  395.         IMPORT_CFM_FUNCTION    Forward_GXPrOpenPage
  396.     ENDIF
  397.  
  398. ;
  399. ; OSErr Forward_GXPrClosePage(TPPrPort pPort)
  400. ;
  401.     IF ¬ GENERATINGCFM THEN
  402.         Macro
  403.         _Forward_GXPrClosePage
  404.             moveq    #54,d0
  405.             dc.w     $ABFB
  406.         EndM
  407.     ELSE
  408.         IMPORT_CFM_FUNCTION    Forward_GXPrClosePage
  409.     ENDIF
  410.  
  411. ;
  412. ; OSErr Forward_GXPrintDefault(THPrint hPrint)
  413. ;
  414.     IF ¬ GENERATINGCFM THEN
  415.         Macro
  416.         _Forward_GXPrintDefault
  417.             moveq    #54,d0
  418.             dc.w     $ABFB
  419.         EndM
  420.     ELSE
  421.         IMPORT_CFM_FUNCTION    Forward_GXPrintDefault
  422.     ENDIF
  423.  
  424. ;
  425. ; OSErr Forward_GXPrStlDialog(THPrint hPrint, Boolean *confirmed)
  426. ;
  427.     IF ¬ GENERATINGCFM THEN
  428.         Macro
  429.         _Forward_GXPrStlDialog
  430.             moveq    #54,d0
  431.             dc.w     $ABFB
  432.         EndM
  433.     ELSE
  434.         IMPORT_CFM_FUNCTION    Forward_GXPrStlDialog
  435.     ENDIF
  436.  
  437. ;
  438. ; OSErr Forward_GXPrJobDialog(THPrint hPrint, Boolean *confirmed)
  439. ;
  440.     IF ¬ GENERATINGCFM THEN
  441.         Macro
  442.         _Forward_GXPrJobDialog
  443.             moveq    #54,d0
  444.             dc.w     $ABFB
  445.         EndM
  446.     ELSE
  447.         IMPORT_CFM_FUNCTION    Forward_GXPrJobDialog
  448.     ENDIF
  449.  
  450. ;
  451. ; OSErr Forward_GXPrStlInit(THPrint hPrint, TPPrDlgRef *pDlg)
  452. ;
  453.     IF ¬ GENERATINGCFM THEN
  454.         Macro
  455.         _Forward_GXPrStlInit
  456.             moveq    #54,d0
  457.             dc.w     $ABFB
  458.         EndM
  459.     ELSE
  460.         IMPORT_CFM_FUNCTION    Forward_GXPrStlInit
  461.     ENDIF
  462.  
  463. ;
  464. ; OSErr Forward_GXPrJobInit(THPrint hPrint, TPPrDlgRef *pDlg)
  465. ;
  466.     IF ¬ GENERATINGCFM THEN
  467.         Macro
  468.         _Forward_GXPrJobInit
  469.             moveq    #54,d0
  470.             dc.w     $ABFB
  471.         EndM
  472.     ELSE
  473.         IMPORT_CFM_FUNCTION    Forward_GXPrJobInit
  474.     ENDIF
  475.  
  476. ;
  477. ; OSErr Forward_GXPrDlgMain(THPrint hPrint, PDlgInitUPP initProc, Boolean *confirmed)
  478. ;
  479.     IF ¬ GENERATINGCFM THEN
  480.         Macro
  481.         _Forward_GXPrDlgMain
  482.             moveq    #54,d0
  483.             dc.w     $ABFB
  484.         EndM
  485.     ELSE
  486.         IMPORT_CFM_FUNCTION    Forward_GXPrDlgMain
  487.     ENDIF
  488.  
  489. ;
  490. ; OSErr Forward_GXPrValidate(THPrint hPrint, Boolean *changedPrintRecord)
  491. ;
  492.     IF ¬ GENERATINGCFM THEN
  493.         Macro
  494.         _Forward_GXPrValidate
  495.             moveq    #54,d0
  496.             dc.w     $ABFB
  497.         EndM
  498.     ELSE
  499.         IMPORT_CFM_FUNCTION    Forward_GXPrValidate
  500.     ENDIF
  501.  
  502. ;
  503. ; OSErr Forward_GXPrJobMerge(THPrint srcPrint, THPrint destPrint)
  504. ;
  505.     IF ¬ GENERATINGCFM THEN
  506.         Macro
  507.         _Forward_GXPrJobMerge
  508.             moveq    #54,d0
  509.             dc.w     $ABFB
  510.         EndM
  511.     ELSE
  512.         IMPORT_CFM_FUNCTION    Forward_GXPrJobMerge
  513.     ENDIF
  514.  
  515. ;
  516. ; OSErr Forward_GXPrGeneral(Ptr dataPtr)
  517. ;
  518.     IF ¬ GENERATINGCFM THEN
  519.         Macro
  520.         _Forward_GXPrGeneral
  521.             moveq    #54,d0
  522.             dc.w     $ABFB
  523.         EndM
  524.     ELSE
  525.         IMPORT_CFM_FUNCTION    Forward_GXPrGeneral
  526.     ENDIF
  527.  
  528. ;
  529. ; OSErr Forward_GXConvertPrintRecordTo(THPrint hPrint)
  530. ;
  531.     IF ¬ GENERATINGCFM THEN
  532.         Macro
  533.         _Forward_GXConvertPrintRecordTo
  534.             moveq    #54,d0
  535.             dc.w     $ABFB
  536.         EndM
  537.     ELSE
  538.         IMPORT_CFM_FUNCTION    Forward_GXConvertPrintRecordTo
  539.     ENDIF
  540.  
  541. ;
  542. ; OSErr Forward_GXConvertPrintRecordFrom(THPrint hPrint)
  543. ;
  544.     IF ¬ GENERATINGCFM THEN
  545.         Macro
  546.         _Forward_GXConvertPrintRecordFrom
  547.             moveq    #54,d0
  548.             dc.w     $ABFB
  549.         EndM
  550.     ELSE
  551.         IMPORT_CFM_FUNCTION    Forward_GXConvertPrintRecordFrom
  552.     ENDIF
  553.  
  554. ;
  555. ; OSErr Forward_GXPrintRecordToJob(THPrint hPrint, gxJob aJob)
  556. ;
  557.     IF ¬ GENERATINGCFM THEN
  558.         Macro
  559.         _Forward_GXPrintRecordToJob
  560.             moveq    #54,d0
  561.             dc.w     $ABFB
  562.         EndM
  563.     ELSE
  564.         IMPORT_CFM_FUNCTION    Forward_GXPrintRecordToJob
  565.     ENDIF
  566.  
  567. ; ------------------------------------------------------------------------------
  568. ;
  569. ;                        Raster Driver Contants and Types
  570. ;
  571. ;-------------------------------------------------------------------------------- 
  572. ; typedef long                 gxRasterPlaneOptions
  573. ; Input structure for setting up the offscreen 
  574. gxPlaneSetupRec         RECORD    0
  575. planeOptions             ds.l   1        ; offset: $0 (0)        ; Options for the offscreen package 
  576. planeHalftone             ds     gxHalftone ; offset: $4 (4)        ; OPTIONAL: halftone structure for this plane 
  577. planeSpace                 ds.l   1        ; offset: $38 (56)        ; OPTIONAL: noSpace will get the graphics default 
  578. planeSet                 ds.l   1        ; offset: $3C (60)        ; OPTIONAL: NIL gets the default 
  579. planeProfile             ds.l   1        ; offset: $40 (64)        ; OPTIONAL: NIL gets no matching 
  580. sizeof                     EQU *            ; size:   $44 (68)
  581.                         ENDR
  582.  
  583. ; typedef struct gxPlaneSetupRec  gxPlaneSetupRec
  584. ; Constants for planeOptions field in gxPlaneSetupRec 
  585.  
  586. gxDefaultOffscreen                EQU        $00000000            ; Default value - bits are allocated for the client, halftoning takes place 
  587. gxDontSetHalftone                EQU        $00000001            ; Don't call SetViewPortHalftone 
  588. gxDotTypeIsDitherLevel            EQU        $00000002            ; Call SetViewPortDither using the dotType as the level 
  589.  
  590. gxOffscreenSetupRec     RECORD    0
  591. width                     ds.w   1        ; offset: $0 (0)        ; Width in pixels 
  592. minHeight                 ds.w   1        ; offset: $2 (2)        ; Minimum height in pixels - actual height returned here 
  593. maxHeight                 ds.w   1        ; offset: $4 (4)        ; Maximum height in pixels 
  594. ramPercentage             ds.l   1        ; offset: $6 (6)        ; Maximum percentage of RAM to take 
  595. ramSlop                     ds.l   1        ; offset: $A (10)        ; Amount of RAM to be sure to leave 
  596. depth                     ds.w   1        ; offset: $E (14)        ; Depths in bits of each plane 
  597. vpMapping                 ds     gxMapping ; offset: $10 (16)    ; Mapping to assign to offscreen viewPorts 
  598. vdMapping                 ds     gxMapping ; offset: $34 (52)    ; Mapping to assign to offscreen viewDevices 
  599. planes                     ds.w   1        ; offset: $58 (88)        ; Number of planes to allocate of depth bits each (can be more than 4) 
  600. planeSetup                 ds.b   4 * gxPlaneSetupRec.sizeof ; offset: $5A (90) ; Parameters for each plane, 4 is provided because it is most handy for writers of devices 
  601. sizeof                     EQU *            ; size:   $16A (362)
  602.                         ENDR
  603.  
  604. ; typedef struct gxOffscreenSetupRec  gxOffscreenSetupRec
  605. ; The format of one plane in the offscreen planar area 
  606. gxOffscreenPlaneRec     RECORD    0
  607. theViewPort                 ds.l   1        ; offset: $0 (0)        ; viewPort for the offscreen 
  608. theDevice                 ds.l   1        ; offset: $4 (4)        ; viewDevice for the offscreen 
  609. theViewGroup             ds.l   1        ; offset: $8 (8)        ; The viewGroup that they share 
  610. theBitmap                 ds.l   1        ; offset: $C (12)        ; The offscreen bitmap shape 
  611. theBits                     ds     gxBitmap ; offset: $10 (16)        ; The bits of the offscreen 
  612. sizeof                     EQU *            ; size:   $30 (48)
  613.                         ENDR
  614.  
  615. ; typedef struct gxOffscreenPlaneRec  gxOffscreenPlaneRec
  616. ; The format of an entire offscreen area 
  617. gxOffscreenRec             RECORD    0
  618. numberOfPlanes             ds.w   1        ; offset: $0 (0)        ; Number of planes we have 
  619. offscreenStorage         ds.l   1        ; offset: $2 (2)        ; Handle containing the bitmaps image data 
  620. thePlanes                 ds     gxOffscreenPlaneRec ; offset: $6 (6) ; Planes to draw in 
  621. sizeof                     EQU *            ; size:   $36 (54)
  622.                         ENDR
  623.  
  624. ; typedef struct gxOffscreenRec  gxOffscreenRec, *gxOffscreenPtr, **gxOffscreenHdl
  625. ; typedef long                 gxRasterRenderOptions
  626. ; Structure that mirrors 'rdip' resource. 
  627. gxRasterPrefsRec         RECORD    0
  628. renderOptions             ds.l   1        ; offset: $0 (0)        ; Options for the raster imaging system 
  629. hImageRes                 ds.l   1        ; offset: $4 (4)        ; Horizontal resolution to image at 
  630. vImageRes                 ds.l   1        ; offset: $8 (8)        ; Vertical resolution to image at 
  631. minBandSize                 ds.w   1        ; offset: $C (12)        ; Minimum band size to use (in pixels) 
  632. maxBandSize                 ds.w   1        ; offset: $E (14)        ; Maximum band size to use (in pixels), 0 == entire page 
  633. ramPercentage             ds.l   1        ; offset: $10 (16)        ; Maximum percentage of RAM to take 
  634. ramSlop                     ds.l   1        ; offset: $14 (20)        ; Amount of RAM to be sure to leave 
  635. depth                     ds.w   1        ; offset: $18 (24)        ; Depth in pixels (PER PLANE!) 
  636. numPlanes                 ds.w   1        ; offset: $1A (26)        ; Number of planes to render 
  637. planeSetup                 ds     gxPlaneSetupRec ; offset: $1C (28) ; One for each plane 
  638. sizeof                     EQU *            ; size:   $60 (96)
  639.                         ENDR
  640.  
  641. ; Constants for renderOptions field in gxRasterPrefsRec. 
  642.  
  643. gxDefaultRaster                    EQU        $00000000            ; Default raster options 
  644. gxDontResolveTransferModes        EQU        $00000001            ; 0=Resolve, 1=Don't Resolve 
  645. gxRenderInReverse                EQU        $00000002            ; Traverse image in reverse order 
  646. gxOnePlaneAtATime                EQU        $00000004            ; Render each plane separately 
  647. gxSendAllBands                    EQU        $00000008            ; Send even empty bands 
  648.  
  649. ; typedef struct gxRasterPrefsRec  gxRasterPrefsRec, *gxRasterPrefsPtr, **gxRasterPrefsHdl
  650. ; typedef long                 gxRasterPackageOptions
  651. ; Structure that mirrors 'rpck' resource. 
  652. gxRasterPackageRec         RECORD    0
  653. bufferSize                 ds.l   1        ; offset: $0 (0)        ; Buffer size for packaging (>= maximum head pass size) 
  654. colorPasses                 ds.w   1        ; offset: $4 (4)        ; 1 (b/w) or 4 (CMYK) is typical 
  655. headHeight                 ds.w   1        ; offset: $6 (6)        ; Printhead height in pixels 
  656. numberPasses             ds.w   1        ; offset: $8 (8)        ; Number of head passes it takes to == iHeadHeight 
  657. passOffset                 ds.w   1        ; offset: $A (10)        ; Offset between passes, in pixels 
  658. packageOptions             ds.l   1        ; offset: $C (12)        ; Packaging options 
  659. sizeof                     EQU *            ; size:   $10 (16)
  660.                         ENDR
  661.  
  662. ; typedef struct gxRasterPackageRec  gxRasterPackageRec, *gxRasterPackagePtr, **gxRasterPackageHdl
  663. ; Constants for packageOptions field in gxRasterPackageRec. 
  664.  
  665. gxSendAllColors                    EQU        $00000001            ; Send even clean bands through 
  666. gxInterlaceColor                EQU        $00000002            ; Ribbon contamination is a concern 
  667. gxOverlayColor                    EQU        $00000004            ; Color printer without a ribbon problem 
  668. gxUseColor                        EQU        (gxInterlaceColor | gxOverlayColor) ; This is a color printer 
  669.  
  670. ; Structure for RasterPackageBitmap message 
  671. gxRasterPackageBitmapRec RECORD    0
  672. bitmapToPackage             ds.l   1        ; offset: $0 (0)        ; Bitmap containing the data to package 
  673. startRaster                 ds.w   1        ; offset: $4 (4)        ; Raster to begin the packaging from 
  674. colorBand                 ds.w   1        ; offset: $6 (6)        ; For which color pass this is a packaging request 
  675. isBandDirty                 ds.b   1        ; offset: $8 (8)        ; Whether there are any dirty bits in this band 
  676. padByte                     ds.b   1        ; offset: $9 (9)
  677. dirtyRect                 ds     Rect    ; offset: $A (10)        ; Which bits are dirty 
  678. sizeof                     EQU *            ; size:   $12 (18)
  679.                         ENDR
  680.  
  681. ; typedef struct gxRasterPackageBitmapRec  gxRasterPackageBitmapRec
  682. ; Structure of number record in gxRasterPackageControlsRec 
  683. gxStandardNumberRec     RECORD    0
  684. numberType                 ds.w   1        ; offset: $0 (0)        ; Type of numberic output desired 
  685. minWidth                 ds.w   1        ; offset: $2 (2)        ; Minimum output width of the number 
  686. padChar                     ds.b   1        ; offset: $4 (4)        ; Pad character for numbers shorter than the minWidth 
  687. padChar2                 ds.b   1        ; offset: $5 (5)
  688. startString                 ds.l   8        ; offset: $6 (6)        ; Prefix string 
  689. endString                 ds.l   8        ; offset: $26 (38)        ; Postfix string 
  690. sizeof                     EQU *            ; size:   $46 (70)
  691.                         ENDR
  692.  
  693. ; typedef struct gxStandardNumberRec  gxStandardNumberRec, *gxStandardNumberPtr
  694. ; Structure that mirrors 'ropt' resource 
  695. gxRasterPackageControlsRec RECORD    0
  696. startPageStringID         ds.w   1        ; offset: $0 (0)        ; 'wstr' to send to the device at start of page 
  697. formFeedStringID         ds.w   1        ; offset: $2 (2)        ; 'wstr' to send to the device to cause a form feed 
  698. forwardMax                 ds.w   1        ; offset: $4 (4)        ; Line feed strings 
  699. forwardLineFeed             ds     gxStandardNumberRec ; offset: $6 (6) ; Number record for forward line feed 
  700. reverseMax                 ds.w   1        ; offset: $4C (76)        ; Max number of reverse line feeds device can do 
  701. reverseLineFeed             ds     gxStandardNumberRec ; offset: $4E (78) ; Number record for forward line feed 
  702. sizeof                     EQU *            ; size:   $94 (148)
  703.                         ENDR
  704.  
  705. ; typedef struct gxRasterPackageControlsRec  gxRasterPackageControlsRec, *gxRasterPackageControlsPtr, **gxRasterPackageControlsHdl
  706. ; Raster imaging system imageData structure 
  707. gxRasterImageDataRec     RECORD    0
  708. renderOptions             ds.l   1        ; offset: $0 (0)        ; Options for the raster imaging system 
  709. hImageRes                 ds.l   1        ; offset: $4 (4)        ; horizontal resolution to image at 
  710. vImageRes                 ds.l   1        ; offset: $8 (8)        ; vertical resolution to image at 
  711. minBandSize                 ds.w   1        ; offset: $C (12)        ; smallest band that makes sense for this device 
  712. maxBandSize                 ds.w   1        ; offset: $E (14)        ; biggest band that makes sense, or 0 for "full page" 
  713. pageSize                 ds     gxRectangle ; offset: $10 (16)    ; size of page for device 
  714. ;
  715. ;            Values used within the RasterDataIn message
  716. ;    
  717. currentYPos                 ds.w   1        ; offset: $20 (32)        ; Current position moving down the page 
  718. packagingInfo             ds     gxRasterPackageRec ; offset: $22 (34) ; Raster packaging record 
  719. ;
  720. ;            Values used within the remaining messages
  721. ;    
  722. optionsValid             ds.b   1        ; offset: $32 (50)        ; Were options specified by the driver? 
  723. padByte                     ds.b   1        ; offset: $33 (51)
  724. packageControls             ds     gxRasterPackageControlsRec ; offset: $34 (52) ; Options for the packaging messages 
  725. theSetup                 ds     gxOffscreenSetupRec ; offset: $C8 (200) ; setup for the offscreen code, variable length componant 
  726. sizeof                     EQU *            ; size:   $232 (562)
  727.                         ENDR
  728.  
  729. ; typedef struct gxRasterImageDataRec  gxRasterImageDataRec, *gxRasterImageDataPtr, **gxRasterImageDataHdl
  730. ; ------------------------------------------------------------------------------
  731. ;
  732. ;                                Raster Driver Imaging Messages
  733. ;
  734. ;-------------------------------------------------------------------------------- 
  735. ;
  736. ; OSErr Send_GXRasterDataIn(gxOffscreenHdl offScreen, gxRectangle *bandRectangle, gxRectangle *dirtyRectangle)
  737. ;
  738.     IF ¬ GENERATINGCFM THEN
  739.         Macro
  740.         _Send_GXRasterDataIn
  741.             moveq    #50,d0
  742.             dc.w     $223C
  743.             dc.w     $0001
  744.             dc.w     $0000
  745.             dc.w     $ABFB
  746.         EndM
  747.     ELSE
  748.         IMPORT_CFM_FUNCTION    Send_GXRasterDataIn
  749.     ENDIF
  750.  
  751. ;
  752. ; OSErr Forward_GXRasterDataIn(gxOffscreenHdl offScreen, gxRectangle *bandRectangle, gxRectangle *dirtyRectangle)
  753. ;
  754.     IF ¬ GENERATINGCFM THEN
  755.         Macro
  756.         _Forward_GXRasterDataIn
  757.             moveq    #54,d0
  758.             dc.w     $ABFB
  759.         EndM
  760.     ELSE
  761.         IMPORT_CFM_FUNCTION    Forward_GXRasterDataIn
  762.     ENDIF
  763.  
  764. ;
  765. ; OSErr Send_GXRasterLineFeed(long *lineFeedSize, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl imageDataHdl)
  766. ;
  767.     IF ¬ GENERATINGCFM THEN
  768.         Macro
  769.         _Send_GXRasterLineFeed
  770.             moveq    #50,d0
  771.             dc.w     $223C
  772.             dc.w     $0001
  773.             dc.w     $0001
  774.             dc.w     $ABFB
  775.         EndM
  776.     ELSE
  777.         IMPORT_CFM_FUNCTION    Send_GXRasterLineFeed
  778.     ENDIF
  779.  
  780. ;
  781. ; OSErr Forward_GXRasterLineFeed(long *lineFeedSize, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl imageDataHdl)
  782. ;
  783.     IF ¬ GENERATINGCFM THEN
  784.         Macro
  785.         _Forward_GXRasterLineFeed
  786.             moveq    #54,d0
  787.             dc.w     $ABFB
  788.         EndM
  789.     ELSE
  790.         IMPORT_CFM_FUNCTION    Forward_GXRasterLineFeed
  791.     ENDIF
  792.  
  793. ;
  794. ; OSErr Send_GXRasterPackageBitmap(gxRasterPackageBitmapRec *whatToPackage, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl imageDataHdl)
  795. ;
  796.     IF ¬ GENERATINGCFM THEN
  797.         Macro
  798.         _Send_GXRasterPackageBitmap
  799.             moveq    #50,d0
  800.             dc.w     $223C
  801.             dc.w     $0001
  802.             dc.w     $0002
  803.             dc.w     $ABFB
  804.         EndM
  805.     ELSE
  806.         IMPORT_CFM_FUNCTION    Send_GXRasterPackageBitmap
  807.     ENDIF
  808.  
  809. ;
  810. ; OSErr Forward_GXRasterPackageBitmap(gxRasterPackageBitmapRec *whatToPackage, Ptr buffer, unsigned long *bufferPos, gxRasterImageDataHdl imageDataHdl)
  811. ;
  812.     IF ¬ GENERATINGCFM THEN
  813.         Macro
  814.         _Forward_GXRasterPackageBitmap
  815.             moveq    #54,d0
  816.             dc.w     $ABFB
  817.         EndM
  818.     ELSE
  819.         IMPORT_CFM_FUNCTION    Forward_GXRasterPackageBitmap
  820.     ENDIF
  821.  
  822. ; ------------------------------------------------------------------------------
  823. ;
  824. ;                        Vector Driver Contants and Types
  825. ;
  826. ;-------------------------------------------------------------------------------- 
  827. ; Vector device halftone component record 
  828. gxVHalftoneCompRec         RECORD    0
  829. angle                     ds.l   1        ; offset: $0 (0)        ; Angle to halftone at. Must be 0, 90, 45 or 135 
  830. penIndex                 ds.l   1        ; offset: $4 (4)        ; index of the pen to draw this component with 
  831. sizeof                     EQU *            ; size:   $8 (8)
  832.                         ENDR
  833.  
  834. ; typedef struct gxVHalftoneCompRec  gxVHalftoneCompRec
  835. ; Vector device halftone record 
  836. gxVHalftoneRec             RECORD    0
  837. halftoneSpace             ds.l   1        ; offset: $0 (0)
  838. halftoneComps             ds.b   4 * gxVHalftoneCompRec.sizeof ; offset: $4 (4) ; Info for each color component 
  839. penIndexForBW             ds.l   1        ; offset: $24 (36)        ; Pen index to draw one bit deep or black and white bitmap with 
  840. sizeof                     EQU *            ; size:   $28 (40)
  841.                         ENDR
  842.  
  843. ; typedef struct gxVHalftoneRec  gxVHalftoneRec
  844. ; Vector shape rendering information 
  845. ; typedef long                 gxVectorShapeOptions
  846. gxVectorShapeDataRec     RECORD    0
  847. shapeOptions             ds.l   1        ; offset: $0 (0)        ; Options to control shape handling 
  848. maxPolyPoints             ds.l   1        ; offset: $4 (4)        ; Maximum number of polygon points that device can support 
  849. shapeError                 ds.l   1        ; offset: $8 (8)        ; Defines allowed deviation from the original shape 
  850. textSize                 ds.l   1        ; offset: $C (12)        ; Text above this size is filled; text below this size is outlined 
  851. frameSize                 ds.l   1        ; offset: $10 (16)        ; Frame's smaller than this -> shape stroked; frame's larger -> shape is filled 
  852. sizeof                     EQU *            ; size:   $14 (20)
  853.                         ENDR
  854.  
  855. ; typedef struct gxVectorShapeDataRec  gxVectorShapeDataRec
  856. ; Constants for shapeOptions field in gxVectorShapeDataRec. 
  857.  
  858. gxUnidirectionalFill            EQU        $00000001            ; Generate scanlines in one direction only.  Useful for transparencies 
  859. gxAlsoOutlineFilledShape        EQU        $00000002            ; Turn on this bit to also outline solid filled shapes 
  860.  
  861. ; Vector device rendering information 
  862. ; typedef long                 gxVectorRenderOptions
  863. ; Vector imaging system imageData structure 
  864. gxVectorImageDataRec     RECORD    0
  865. renderOptions             ds.l   1        ; offset: $0 (0)        ; Options to control rendering: color sort, clipping, etc. 
  866. devRes                     ds.l   1        ; offset: $4 (4)        ; Device resolution 
  867. devTransform             ds.l   1        ; offset: $8 (8)        ; Mapping, clip and halftoning information for colored bitmaps 
  868. clrSet                     ds.l   1        ; offset: $C (12)        ; Entire set of colors; usually indexed color space for pen plotters 
  869. bgColor                     ds     gxColor    ; offset: $10 (16)        ; The background color in the color space specified by the clrSpace field 
  870. halftoneInfo             ds     gxVHalftoneRec ; offset: $20 (32) ; Defines halftone information for color bitmaps 
  871. hPenTable                 ds.l   1        ; offset: $48 (72)        ; Complete list of pens along with their pen positions and thickness 
  872. pageRect                 ds     gxRectangle ; offset: $4C (76)    ; Page dimensions 
  873. shapeData                 ds     gxVectorShapeDataRec ; offset: $5C (92) ; Information on how to render a shape 
  874. sizeof                     EQU *            ; size:   $70 (112)
  875.                         ENDR
  876.  
  877. ; typedef struct gxVectorImageDataRec  gxVectorImageDataRec, *gxVectorImageDataPtr, **gxVectorImageDataHdl
  878. ; Constants for renderOptions field in gxVectorImageDataRec. 
  879.  
  880. gxColorSort                        EQU        $00000001            ; Set for pen plotters 
  881. gxATransferMode                    EQU        $00000002            ; Set if transfer modes need to be resolved 
  882. gxNoOverlap                        EQU        $00000004            ; Set if non-overlapping output is desired
  883. gxAColorBitmap                    EQU        $00000008            ; Set if color bitmap output is desired 
  884. gxSortbyPenPos                    EQU        $00000010            ; Set if shapes are to be drawn in the order of the pen index 
  885. ; in the pen table. NOTE: this is not the pen position in the carousel 
  886. gxPenLessPlotter                EQU        $00000020            ; Indicates raster printer/plotter 
  887. gxCutterPlotter                    EQU        $00000040            ; Indicates cutter 
  888. gxNoBackGround                    EQU        $00000080            ; Set if shapes that map to the background color should not be sent to driver 
  889.  
  890. ; ------------------------------------------------------------------------------
  891. ;
  892. ;                                Vector Driver Imaging Messages
  893. ;
  894. ;-------------------------------------------------------------------------------- 
  895. ;
  896. ; OSErr Send_GXVectorPackageShape(gxShape theShape, long penIndex)
  897. ;
  898.     IF ¬ GENERATINGCFM THEN
  899.         Macro
  900.         _Send_GXVectorPackageShape
  901.             moveq    #50,d0
  902.             dc.w     $223C
  903.             dc.w     $0001
  904.             dc.w     $0000
  905.             dc.w     $ABFB
  906.         EndM
  907.     ELSE
  908.         IMPORT_CFM_FUNCTION    Send_GXVectorPackageShape
  909.     ENDIF
  910.  
  911. ;
  912. ; OSErr Forward_GXVectorPackageShape(gxShape theShape, long penIndex)
  913. ;
  914.     IF ¬ GENERATINGCFM THEN
  915.         Macro
  916.         _Forward_GXVectorPackageShape
  917.             moveq    #54,d0
  918.             dc.w     $ABFB
  919.         EndM
  920.     ELSE
  921.         IMPORT_CFM_FUNCTION    Forward_GXVectorPackageShape
  922.     ENDIF
  923.  
  924. ;
  925. ; OSErr Send_GXVectorLoadPens(gxPenTableHdl penTable, long *shapeCounts, Boolean *penTableChanged)
  926. ;
  927.     IF ¬ GENERATINGCFM THEN
  928.         Macro
  929.         _Send_GXVectorLoadPens
  930.             moveq    #50,d0
  931.             dc.w     $223C
  932.             dc.w     $0001
  933.             dc.w     $0001
  934.             dc.w     $ABFB
  935.         EndM
  936.     ELSE
  937.         IMPORT_CFM_FUNCTION    Send_GXVectorLoadPens
  938.     ENDIF
  939.  
  940. ;
  941. ; OSErr Forward_GXVectorLoadPens(gxPenTableHdl penTable, long *shapeCounts, Boolean *penTableChanged)
  942. ;
  943.     IF ¬ GENERATINGCFM THEN
  944.         Macro
  945.         _Forward_GXVectorLoadPens
  946.             moveq    #54,d0
  947.             dc.w     $ABFB
  948.         EndM
  949.     ELSE
  950.         IMPORT_CFM_FUNCTION    Forward_GXVectorLoadPens
  951.     ENDIF
  952.  
  953. ;
  954. ; OSErr Send_GXVectorVectorizeShape(gxShape theShape, long penIndex, gxVectorShapeDataRec *vectorData)
  955. ;
  956.     IF ¬ GENERATINGCFM THEN
  957.         Macro
  958.         _Send_GXVectorVectorizeShape
  959.             moveq    #50,d0
  960.             dc.w     $223C
  961.             dc.w     $0001
  962.             dc.w     $0002
  963.             dc.w     $ABFB
  964.         EndM
  965.     ELSE
  966.         IMPORT_CFM_FUNCTION    Send_GXVectorVectorizeShape
  967.     ENDIF
  968.  
  969. ;
  970. ; OSErr Forward_GXVectorVectorizeShape(gxShape theShape, long penIndex, gxVectorShapeDataRec *vectorData)
  971. ;
  972.     IF ¬ GENERATINGCFM THEN
  973.         Macro
  974.         _Forward_GXVectorVectorizeShape
  975.             moveq    #54,d0
  976.             dc.w     $ABFB
  977.         EndM
  978.     ELSE
  979.         IMPORT_CFM_FUNCTION    Forward_GXVectorVectorizeShape
  980.     ENDIF
  981.  
  982. ; ------------------------------------------------------------------------------
  983. ;
  984. ;                            PostScript Driver Contants and Types
  985. ;
  986. ;-------------------------------------------------------------------------------- 
  987. gxPostSynonym                    EQU        'post'
  988.  
  989. ; PostScript glyphs record 
  990. gxPrinterGlyphsRec         RECORD    0
  991. theFont                     ds.l   1        ; offset: $0 (0)        ;  ---> Font reference 
  992. nGlyphs                     ds.l   1        ; offset: $4 (4)        ;  ---> Number of glyphs in the font 
  993. platform                 ds.l   1        ; offset: $8 (8)        ; <---  How printer font is encoded 
  994. script                     ds.l   1        ; offset: $C (12)        ; <---  Script if platform != glyphPlatform 
  995. language                 ds.l   1        ; offset: $10 (16)        ; <---  Language if platform != glyphPlatform 
  996. vmUsage                     ds.l   1        ; offset: $14 (20)        ; <---  How much PostScript VM font uses 
  997. ; Size of this array is long-alligned(nGlyphs) 
  998. glyphBits                 ds.l   1        ; offset: $18 (24)        ; <---  Bit array of which system glyphs are in printer 
  999. sizeof                     EQU *            ; size:   $1C (28)
  1000.                         ENDR
  1001.  
  1002. ; typedef struct gxPrinterGlyphsRec  gxPrinterGlyphsRec
  1003. ; PostScript device rendering information 
  1004. ; typedef long                 gxPostScriptRenderOptions
  1005. gxPostScriptImageDataRec RECORD    0
  1006. languageLevel             ds.w   1        ; offset: $0 (0)        ; PostScript language level 
  1007. devCSpace                 ds.l   1        ; offset: $2 (2)        ; The printer's color space 
  1008. devCProfile                 ds.l   1        ; offset: $6 (6)        ; The printer's color profile for matching 
  1009. renderOptions             ds.l   1        ; offset: $A (10)        ; Options for the imaging system 
  1010. pathLimit                 ds.l   1        ; offset: $E (14)        ; Maximum path size 
  1011. gsaveLimit                 ds.w   1        ; offset: $12 (18)        ; Maximum number of gsaves allowed 
  1012. opStackLimit             ds.w   1        ; offset: $14 (20)        ; Operand stack limit 
  1013. fontType                 ds.l   1        ; offset: $16 (22)        ; These are the font types that the printer supports  
  1014. printerVM                 ds.l   1        ; offset: $1A (26)        ; How much memory is in the printer 
  1015. reserved0                 ds.l   1        ; offset: $1E (30)
  1016. sizeof                     EQU *            ; size:   $22 (34)
  1017.                         ENDR
  1018.  
  1019. ; typedef struct gxPostScriptImageDataRec  gxPostScriptImageDataRec, *gxPostScriptImageDataPtr, **gxPostScriptImageDataHdl
  1020. ; Constants for renderOptions field in gxPostScriptImageDataRec. 
  1021.  
  1022. gxNeedsHexOption                EQU        $00000001            ; Convert all binary data to hex 
  1023. gxNeedsCommentsOption            EQU        $00000002            ; Issue PostScript comments 
  1024. gxBoundingBoxesOption            EQU        $00000004            ; Calculate the values for %%BoundingBox: and %%PageBoundingBox: -- requires needsCommentsOption 
  1025. gxPortablePostScriptOption        EQU        $00000008            ; Generate portable PostScript 
  1026. gxTextClipsToPathOption            EQU        $00000010            ; Convert all clips that are composed of text to path shapes 
  1027. gxFlattenClipPathOption            EQU        $00000020            ; Convert all clips that are path shapes to polygons (helps better control point limit) 
  1028. gxUseCharpath1Option            EQU        $00000040            ; (ignored if text clips are converted to paths)  When the clip is text,  
  1029. ; Do it one glyph at a time, redrawing the main shape each time 
  1030. gxUseLevel2ColorOption            EQU        $00000080            ; When printing to level-2 use level-2 device independent color 
  1031. gxNoEPSIllegalOperators            EQU        $00000100            ; Don't use any operators prohibited by the Encapsulated PostScript File Format V3.0 
  1032. gxEPSTargetOption                EQU        gxNoEPSIllegalOperators + gxNeedsCommentsOption + gxBoundingBoxesOption ; PostScript intended for EPS Use. 
  1033.  
  1034. ; Structure for gxPostScriptGetProcSetList / gxPostScriptDownLoadProcSetList 
  1035. gxProcSetListRec         RECORD    0
  1036. clientid                 ds.l   1        ; offset: $0 (0)
  1037. controlType                 ds.l   1        ; offset: $4 (4)        ; The driver will call FetchTaggedData on each of these resources 
  1038. controlid                 ds.w   1        ; offset: $8 (8)
  1039. dataType                 ds.l   1        ; offset: $A (10)
  1040. reserved0                 ds.l   1        ; offset: $E (14)
  1041. sizeof                     EQU *            ; size:   $12 (18)
  1042.                         ENDR
  1043.  
  1044. ; typedef struct gxProcSetListRec  gxProcSetListRec, *gxProcSetListPtr, **gxProcSetListHdl
  1045. ; Possible results of querying printer (returned by gxPostScriptQueryPrinter message) 
  1046.  
  1047. gxPrinterOK                        EQU        0
  1048. gxIntializePrinter                EQU        1
  1049. gxFilePrinting                    EQU        2
  1050. gxResetPrinter                    EQU        128
  1051.  
  1052. ; ------------------------------------------------------------------------------
  1053. ;
  1054. ;                                PostScript Driver Imaging Messages
  1055. ;
  1056. ;-------------------------------------------------------------------------------- 
  1057. ;
  1058. ; OSErr Send_GXPostScriptQueryPrinter(long *queryData)
  1059. ;
  1060.     IF ¬ GENERATINGCFM THEN
  1061.         Macro
  1062.         _Send_GXPostScriptQueryPrinter
  1063.             moveq    #50,d0
  1064.             dc.w     $223C
  1065.             dc.w     $0001
  1066.             dc.w     $0000
  1067.             dc.w     $ABFB
  1068.         EndM
  1069.     ELSE
  1070.         IMPORT_CFM_FUNCTION    Send_GXPostScriptQueryPrinter
  1071.     ENDIF
  1072.  
  1073. ;
  1074. ; OSErr Forward_GXPostScriptQueryPrinter(long *queryData)
  1075. ;
  1076.     IF ¬ GENERATINGCFM THEN
  1077.         Macro
  1078.         _Forward_GXPostScriptQueryPrinter
  1079.             moveq    #54,d0
  1080.             dc.w     $ABFB
  1081.         EndM
  1082.     ELSE
  1083.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptQueryPrinter
  1084.     ENDIF
  1085.  
  1086. ;
  1087. ; OSErr Send_GXPostScriptInitializePrinter(void)
  1088. ;
  1089.     IF ¬ GENERATINGCFM THEN
  1090.         Macro
  1091.         _Send_GXPostScriptInitializePrinter
  1092.             moveq    #50,d0
  1093.             dc.w     $223C
  1094.             dc.w     $0001
  1095.             dc.w     $0001
  1096.             dc.w     $ABFB
  1097.         EndM
  1098.     ELSE
  1099.         IMPORT_CFM_FUNCTION    Send_GXPostScriptInitializePrinter
  1100.     ENDIF
  1101.  
  1102. ;
  1103. ; OSErr Forward_GXPostScriptInitializePrinter(void)
  1104. ;
  1105.     IF ¬ GENERATINGCFM THEN
  1106.         Macro
  1107.         _Forward_GXPostScriptInitializePrinter
  1108.             moveq    #54,d0
  1109.             dc.w     $ABFB
  1110.         EndM
  1111.     ELSE
  1112.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptInitializePrinter
  1113.     ENDIF
  1114.  
  1115. ;
  1116. ; OSErr Send_GXPostScriptResetPrinter(void)
  1117. ;
  1118.     IF ¬ GENERATINGCFM THEN
  1119.         Macro
  1120.         _Send_GXPostScriptResetPrinter
  1121.             moveq    #50,d0
  1122.             dc.w     $223C
  1123.             dc.w     $0001
  1124.             dc.w     $0002
  1125.             dc.w     $ABFB
  1126.         EndM
  1127.     ELSE
  1128.         IMPORT_CFM_FUNCTION    Send_GXPostScriptResetPrinter
  1129.     ENDIF
  1130.  
  1131. ;
  1132. ; OSErr Forward_GXPostScriptResetPrinter(void)
  1133. ;
  1134.     IF ¬ GENERATINGCFM THEN
  1135.         Macro
  1136.         _Forward_GXPostScriptResetPrinter
  1137.             moveq    #54,d0
  1138.             dc.w     $ABFB
  1139.         EndM
  1140.     ELSE
  1141.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptResetPrinter
  1142.     ENDIF
  1143.  
  1144. ;
  1145. ; OSErr Send_GXPostScriptExitServer(void)
  1146. ;
  1147.     IF ¬ GENERATINGCFM THEN
  1148.         Macro
  1149.         _Send_GXPostScriptExitServer
  1150.             moveq    #50,d0
  1151.             dc.w     $223C
  1152.             dc.w     $0001
  1153.             dc.w     $0003
  1154.             dc.w     $ABFB
  1155.         EndM
  1156.     ELSE
  1157.         IMPORT_CFM_FUNCTION    Send_GXPostScriptExitServer
  1158.     ENDIF
  1159.  
  1160. ;
  1161. ; OSErr Forward_GXPostScriptExitServer(void)
  1162. ;
  1163.     IF ¬ GENERATINGCFM THEN
  1164.         Macro
  1165.         _Forward_GXPostScriptExitServer
  1166.             moveq    #54,d0
  1167.             dc.w     $ABFB
  1168.         EndM
  1169.     ELSE
  1170.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptExitServer
  1171.     ENDIF
  1172.  
  1173. ;
  1174. ;
  1175. ;        Device communication messages
  1176. ;
  1177. ;
  1178. ;
  1179. ; OSErr Send_GXPostScriptGetStatusText(Handle textHdl)
  1180. ;
  1181.     IF ¬ GENERATINGCFM THEN
  1182.         Macro
  1183.         _Send_GXPostScriptGetStatusText
  1184.             moveq    #50,d0
  1185.             dc.w     $223C
  1186.             dc.w     $0001
  1187.             dc.w     $0004
  1188.             dc.w     $ABFB
  1189.         EndM
  1190.     ELSE
  1191.         IMPORT_CFM_FUNCTION    Send_GXPostScriptGetStatusText
  1192.     ENDIF
  1193.  
  1194. ;
  1195. ; OSErr Forward_GXPostScriptGetStatusText(Handle textHdl)
  1196. ;
  1197.     IF ¬ GENERATINGCFM THEN
  1198.         Macro
  1199.         _Forward_GXPostScriptGetStatusText
  1200.             moveq    #54,d0
  1201.             dc.w     $ABFB
  1202.         EndM
  1203.     ELSE
  1204.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptGetStatusText
  1205.     ENDIF
  1206.  
  1207. ;
  1208. ; OSErr Send_GXPostScriptGetPrinterText(Handle textHdl)
  1209. ;
  1210.     IF ¬ GENERATINGCFM THEN
  1211.         Macro
  1212.         _Send_GXPostScriptGetPrinterText
  1213.             moveq    #50,d0
  1214.             dc.w     $223C
  1215.             dc.w     $0001
  1216.             dc.w     $0005
  1217.             dc.w     $ABFB
  1218.         EndM
  1219.     ELSE
  1220.         IMPORT_CFM_FUNCTION    Send_GXPostScriptGetPrinterText
  1221.     ENDIF
  1222.  
  1223. ;
  1224. ; OSErr Forward_GXPostScriptGetPrinterText(Handle textHdl)
  1225. ;
  1226.     IF ¬ GENERATINGCFM THEN
  1227.         Macro
  1228.         _Forward_GXPostScriptGetPrinterText
  1229.             moveq    #54,d0
  1230.             dc.w     $ABFB
  1231.         EndM
  1232.     ELSE
  1233.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptGetPrinterText
  1234.     ENDIF
  1235.  
  1236. ;
  1237. ; OSErr Send_GXPostScriptScanStatusText(Handle textHdl)
  1238. ;
  1239.     IF ¬ GENERATINGCFM THEN
  1240.         Macro
  1241.         _Send_GXPostScriptScanStatusText
  1242.             moveq    #50,d0
  1243.             dc.w     $223C
  1244.             dc.w     $0001
  1245.             dc.w     $0006
  1246.             dc.w     $ABFB
  1247.         EndM
  1248.     ELSE
  1249.         IMPORT_CFM_FUNCTION    Send_GXPostScriptScanStatusText
  1250.     ENDIF
  1251.  
  1252. ;
  1253. ; OSErr Forward_GXPostScriptScanStatusText(Handle textHdl)
  1254. ;
  1255.     IF ¬ GENERATINGCFM THEN
  1256.         Macro
  1257.         _Forward_GXPostScriptScanStatusText
  1258.             moveq    #54,d0
  1259.             dc.w     $ABFB
  1260.         EndM
  1261.     ELSE
  1262.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptScanStatusText
  1263.     ENDIF
  1264.  
  1265. ;
  1266. ; OSErr Send_GXPostScriptScanPrinterText(Handle textHdl)
  1267. ;
  1268.     IF ¬ GENERATINGCFM THEN
  1269.         Macro
  1270.         _Send_GXPostScriptScanPrinterText
  1271.             moveq    #50,d0
  1272.             dc.w     $223C
  1273.             dc.w     $0001
  1274.             dc.w     $0007
  1275.             dc.w     $ABFB
  1276.         EndM
  1277.     ELSE
  1278.         IMPORT_CFM_FUNCTION    Send_GXPostScriptScanPrinterText
  1279.     ENDIF
  1280.  
  1281. ;
  1282. ; OSErr Forward_GXPostScriptScanPrinterText(Handle textHdl)
  1283. ;
  1284.     IF ¬ GENERATINGCFM THEN
  1285.         Macro
  1286.         _Forward_GXPostScriptScanPrinterText
  1287.             moveq    #54,d0
  1288.             dc.w     $ABFB
  1289.         EndM
  1290.     ELSE
  1291.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptScanPrinterText
  1292.     ENDIF
  1293.  
  1294. ;
  1295. ;
  1296. ;        Proc set management messages
  1297. ;
  1298. ;
  1299. ;
  1300. ; OSErr Send_GXPostScriptGetDocumentProcSetList(gxProcSetListHdl procSet, gxPostScriptImageDataHdl imageDataHdl)
  1301. ;
  1302.     IF ¬ GENERATINGCFM THEN
  1303.         Macro
  1304.         _Send_GXPostScriptGetDocumentProcSetList
  1305.             moveq    #50,d0
  1306.             dc.w     $223C
  1307.             dc.w     $0001
  1308.             dc.w     $0008
  1309.             dc.w     $ABFB
  1310.         EndM
  1311.     ELSE
  1312.         IMPORT_CFM_FUNCTION    Send_GXPostScriptGetDocumentProcSetList
  1313.     ENDIF
  1314.  
  1315. ;
  1316. ; OSErr Forward_GXPostScriptGetDocumentProcSetList(gxProcSetListHdl procSet, gxPostScriptImageDataHdl imageDataHdl)
  1317. ;
  1318.     IF ¬ GENERATINGCFM THEN
  1319.         Macro
  1320.         _Forward_GXPostScriptGetDocumentProcSetList
  1321.             moveq    #54,d0
  1322.             dc.w     $ABFB
  1323.         EndM
  1324.     ELSE
  1325.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptGetDocumentProcSetList
  1326.     ENDIF
  1327.  
  1328. ;
  1329. ; OSErr Send_GXPostScriptDownloadProcSetList(gxProcSetListHdl procSet, gxPostScriptImageDataHdl imageDataHdl)
  1330. ;
  1331.     IF ¬ GENERATINGCFM THEN
  1332.         Macro
  1333.         _Send_GXPostScriptDownloadProcSetList
  1334.             moveq    #50,d0
  1335.             dc.w     $223C
  1336.             dc.w     $0001
  1337.             dc.w     $0009
  1338.             dc.w     $ABFB
  1339.         EndM
  1340.     ELSE
  1341.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDownloadProcSetList
  1342.     ENDIF
  1343.  
  1344. ;
  1345. ; OSErr Forward_GXPostScriptDownloadProcSetList(gxProcSetListHdl procSet, gxPostScriptImageDataHdl imageDataHdl)
  1346. ;
  1347.     IF ¬ GENERATINGCFM THEN
  1348.         Macro
  1349.         _Forward_GXPostScriptDownloadProcSetList
  1350.             moveq    #54,d0
  1351.             dc.w     $ABFB
  1352.         EndM
  1353.     ELSE
  1354.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDownloadProcSetList
  1355.     ENDIF
  1356.  
  1357. ;
  1358. ;
  1359. ;        Font management messages
  1360. ;
  1361. ;
  1362. ;
  1363. ; OSErr Send_GXPostScriptGetPrinterGlyphsInformation(gxPrinterGlyphsRec *glyphsInfo)
  1364. ;
  1365.     IF ¬ GENERATINGCFM THEN
  1366.         Macro
  1367.         _Send_GXPostScriptGetPrinterGlyphsInformation
  1368.             moveq    #50,d0
  1369.             dc.w     $223C
  1370.             dc.w     $0001
  1371.             dc.w     $000A
  1372.             dc.w     $ABFB
  1373.         EndM
  1374.     ELSE
  1375.         IMPORT_CFM_FUNCTION    Send_GXPostScriptGetPrinterGlyphsInformation
  1376.     ENDIF
  1377.  
  1378. ;
  1379. ; OSErr Forward_GXPostScriptGetPrinterGlyphsInformation(gxPrinterGlyphsRec *glyphsInfo)
  1380. ;
  1381.     IF ¬ GENERATINGCFM THEN
  1382.         Macro
  1383.         _Forward_GXPostScriptGetPrinterGlyphsInformation
  1384.             moveq    #54,d0
  1385.             dc.w     $ABFB
  1386.         EndM
  1387.     ELSE
  1388.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptGetPrinterGlyphsInformation
  1389.     ENDIF
  1390.  
  1391. ;
  1392. ; OSErr Send_GXPostScriptStreamFont(gxFont fontref, scalerStream *streamPtr)
  1393. ;
  1394.     IF ¬ GENERATINGCFM THEN
  1395.         Macro
  1396.         _Send_GXPostScriptStreamFont
  1397.             moveq    #50,d0
  1398.             dc.w     $223C
  1399.             dc.w     $0001
  1400.             dc.w     $000B
  1401.             dc.w     $ABFB
  1402.         EndM
  1403.     ELSE
  1404.         IMPORT_CFM_FUNCTION    Send_GXPostScriptStreamFont
  1405.     ENDIF
  1406.  
  1407. ;
  1408. ; OSErr Forward_GXPostScriptStreamFont(gxFont fontref, scalerStream *streamPtr)
  1409. ;
  1410.     IF ¬ GENERATINGCFM THEN
  1411.         Macro
  1412.         _Forward_GXPostScriptStreamFont
  1413.             moveq    #54,d0
  1414.             dc.w     $ABFB
  1415.         EndM
  1416.     ELSE
  1417.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptStreamFont
  1418.     ENDIF
  1419.  
  1420. ;
  1421. ;
  1422. ;        Document structuring and formatting messages
  1423. ;
  1424. ;
  1425. ;
  1426. ; OSErr Send_GXPostScriptDoDocumentHeader(gxPostScriptImageDataHdl imageDataHdl)
  1427. ;
  1428.     IF ¬ GENERATINGCFM THEN
  1429.         Macro
  1430.         _Send_GXPostScriptDoDocumentHeader
  1431.             moveq    #50,d0
  1432.             dc.w     $223C
  1433.             dc.w     $0001
  1434.             dc.w     $000C
  1435.             dc.w     $ABFB
  1436.         EndM
  1437.     ELSE
  1438.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDoDocumentHeader
  1439.     ENDIF
  1440.  
  1441. ;
  1442. ; OSErr Forward_GXPostScriptDoDocumentHeader(gxPostScriptImageDataHdl imageDataHdl)
  1443. ;
  1444.     IF ¬ GENERATINGCFM THEN
  1445.         Macro
  1446.         _Forward_GXPostScriptDoDocumentHeader
  1447.             moveq    #54,d0
  1448.             dc.w     $ABFB
  1449.         EndM
  1450.     ELSE
  1451.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDoDocumentHeader
  1452.     ENDIF
  1453.  
  1454. ;
  1455. ; OSErr Send_GXPostScriptDoDocumentSetup(gxPostScriptImageDataHdl imageDataHdl)
  1456. ;
  1457.     IF ¬ GENERATINGCFM THEN
  1458.         Macro
  1459.         _Send_GXPostScriptDoDocumentSetup
  1460.             moveq    #50,d0
  1461.             dc.w     $223C
  1462.             dc.w     $0001
  1463.             dc.w     $000D
  1464.             dc.w     $ABFB
  1465.         EndM
  1466.     ELSE
  1467.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDoDocumentSetup
  1468.     ENDIF
  1469.  
  1470. ;
  1471. ; OSErr Forward_GXPostScriptDoDocumentSetup(gxPostScriptImageDataHdl imageDataHdl)
  1472. ;
  1473.     IF ¬ GENERATINGCFM THEN
  1474.         Macro
  1475.         _Forward_GXPostScriptDoDocumentSetup
  1476.             moveq    #54,d0
  1477.             dc.w     $ABFB
  1478.         EndM
  1479.     ELSE
  1480.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDoDocumentSetup
  1481.     ENDIF
  1482.  
  1483. ;
  1484. ; OSErr Send_GXPostScriptDoDocumentTrailer(gxPostScriptImageDataHdl imageDataHdl)
  1485. ;
  1486.     IF ¬ GENERATINGCFM THEN
  1487.         Macro
  1488.         _Send_GXPostScriptDoDocumentTrailer
  1489.             moveq    #50,d0
  1490.             dc.w     $223C
  1491.             dc.w     $0001
  1492.             dc.w     $000E
  1493.             dc.w     $ABFB
  1494.         EndM
  1495.     ELSE
  1496.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDoDocumentTrailer
  1497.     ENDIF
  1498.  
  1499. ;
  1500. ; OSErr Forward_GXPostScriptDoDocumentTrailer(gxPostScriptImageDataHdl imageDataHdl)
  1501. ;
  1502.     IF ¬ GENERATINGCFM THEN
  1503.         Macro
  1504.         _Forward_GXPostScriptDoDocumentTrailer
  1505.             moveq    #54,d0
  1506.             dc.w     $ABFB
  1507.         EndM
  1508.     ELSE
  1509.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDoDocumentTrailer
  1510.     ENDIF
  1511.  
  1512. ;
  1513. ;
  1514. ;        Page structuring and formatting messages
  1515. ;
  1516. ;
  1517. ;
  1518. ; OSErr Send_GXPostScriptDoPageSetup(gxFormat pageFormat, long thePage, gxPostScriptImageDataHdl imageDataHdl)
  1519. ;
  1520.     IF ¬ GENERATINGCFM THEN
  1521.         Macro
  1522.         _Send_GXPostScriptDoPageSetup
  1523.             moveq    #50,d0
  1524.             dc.w     $223C
  1525.             dc.w     $0001
  1526.             dc.w     $000F
  1527.             dc.w     $ABFB
  1528.         EndM
  1529.     ELSE
  1530.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDoPageSetup
  1531.     ENDIF
  1532.  
  1533. ;
  1534. ; OSErr Forward_GXPostScriptDoPageSetup(gxFormat pageFormat, long thePage, gxPostScriptImageDataHdl imageDataHdl)
  1535. ;
  1536.     IF ¬ GENERATINGCFM THEN
  1537.         Macro
  1538.         _Forward_GXPostScriptDoPageSetup
  1539.             moveq    #54,d0
  1540.             dc.w     $ABFB
  1541.         EndM
  1542.     ELSE
  1543.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDoPageSetup
  1544.     ENDIF
  1545.  
  1546. ;
  1547. ; OSErr Send_GXPostScriptSelectPaperType(gxPaperType thePapertype, long thePage, gxPostScriptImageDataHdl imageDataHdl)
  1548. ;
  1549.     IF ¬ GENERATINGCFM THEN
  1550.         Macro
  1551.         _Send_GXPostScriptSelectPaperType
  1552.             moveq    #50,d0
  1553.             dc.w     $223C
  1554.             dc.w     $0001
  1555.             dc.w     $0010
  1556.             dc.w     $ABFB
  1557.         EndM
  1558.     ELSE
  1559.         IMPORT_CFM_FUNCTION    Send_GXPostScriptSelectPaperType
  1560.     ENDIF
  1561.  
  1562. ;
  1563. ; OSErr Forward_GXPostScriptSelectPaperType(gxPaperType thePapertype, long thePage, gxPostScriptImageDataHdl imageDataHdl)
  1564. ;
  1565.     IF ¬ GENERATINGCFM THEN
  1566.         Macro
  1567.         _Forward_GXPostScriptSelectPaperType
  1568.             moveq    #54,d0
  1569.             dc.w     $ABFB
  1570.         EndM
  1571.     ELSE
  1572.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptSelectPaperType
  1573.     ENDIF
  1574.  
  1575. ;
  1576. ; OSErr Send_GXPostScriptDoPageTrailer(gxPostScriptImageDataHdl imageDataHdl)
  1577. ;
  1578.     IF ¬ GENERATINGCFM THEN
  1579.         Macro
  1580.         _Send_GXPostScriptDoPageTrailer
  1581.             moveq    #50,d0
  1582.             dc.w     $223C
  1583.             dc.w     $0001
  1584.             dc.w     $0011
  1585.             dc.w     $ABFB
  1586.         EndM
  1587.     ELSE
  1588.         IMPORT_CFM_FUNCTION    Send_GXPostScriptDoPageTrailer
  1589.     ENDIF
  1590.  
  1591. ;
  1592. ; OSErr Forward_GXPostScriptDoPageTrailer(gxPostScriptImageDataHdl imageDataHdl)
  1593. ;
  1594.     IF ¬ GENERATINGCFM THEN
  1595.         Macro
  1596.         _Forward_GXPostScriptDoPageTrailer
  1597.             moveq    #54,d0
  1598.             dc.w     $ABFB
  1599.         EndM
  1600.     ELSE
  1601.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptDoPageTrailer
  1602.     ENDIF
  1603.  
  1604. ;
  1605. ; OSErr Send_GXPostScriptEjectPage(gxPaperType thePapertype, long pagenumber, long copiescount, long erasepage, gxPostScriptImageDataHdl imageDataHdl)
  1606. ;
  1607.     IF ¬ GENERATINGCFM THEN
  1608.         Macro
  1609.         _Send_GXPostScriptEjectPage
  1610.             moveq    #50,d0
  1611.             dc.w     $223C
  1612.             dc.w     $0001
  1613.             dc.w     $0012
  1614.             dc.w     $ABFB
  1615.         EndM
  1616.     ELSE
  1617.         IMPORT_CFM_FUNCTION    Send_GXPostScriptEjectPage
  1618.     ENDIF
  1619.  
  1620. ;
  1621. ; OSErr Forward_GXPostScriptEjectPage(gxPaperType thePapertype, long pagenumber, long copiescount, long erasepage, gxPostScriptImageDataHdl imageDataHdl)
  1622. ;
  1623.     IF ¬ GENERATINGCFM THEN
  1624.         Macro
  1625.         _Forward_GXPostScriptEjectPage
  1626.             moveq    #54,d0
  1627.             dc.w     $ABFB
  1628.         EndM
  1629.     ELSE
  1630.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptEjectPage
  1631.     ENDIF
  1632.  
  1633. ;
  1634. ; OSErr Send_GXPostScriptEjectPendingPage(Boolean *pageWasEjected)
  1635. ;
  1636.     IF ¬ GENERATINGCFM THEN
  1637.         Macro
  1638.         _Send_GXPostScriptEjectPendingPage
  1639.             moveq    #50,d0
  1640.             dc.w     $223C
  1641.             dc.w     $0001
  1642.             dc.w     $0014
  1643.             dc.w     $ABFB
  1644.         EndM
  1645.     ELSE
  1646.         IMPORT_CFM_FUNCTION    Send_GXPostScriptEjectPendingPage
  1647.     ENDIF
  1648.  
  1649. ;
  1650. ; OSErr Forward_GXPostScriptEjectPendingPage(Boolean *pageWasEjected)
  1651. ;
  1652.     IF ¬ GENERATINGCFM THEN
  1653.         Macro
  1654.         _Forward_GXPostScriptEjectPendingPage
  1655.             moveq    #54,d0
  1656.             dc.w     $ABFB
  1657.         EndM
  1658.     ELSE
  1659.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptEjectPendingPage
  1660.     ENDIF
  1661.  
  1662. ;
  1663. ;
  1664. ;        Shape imaging messages
  1665. ;
  1666. ;
  1667. ;
  1668. ; OSErr Send_GXPostScriptProcessShape(gxShape page, long trcount, gxTransform trlist[])
  1669. ;
  1670.     IF ¬ GENERATINGCFM THEN
  1671.         Macro
  1672.         _Send_GXPostScriptProcessShape
  1673.             moveq    #50,d0
  1674.             dc.w     $223C
  1675.             dc.w     $0001
  1676.             dc.w     $0013
  1677.             dc.w     $ABFB
  1678.         EndM
  1679.     ELSE
  1680.         IMPORT_CFM_FUNCTION    Send_GXPostScriptProcessShape
  1681.     ENDIF
  1682.  
  1683. ;
  1684. ; OSErr Forward_GXPostScriptProcessShape(gxShape page, long trcount, gxTransform trlist[])
  1685. ;
  1686.     IF ¬ GENERATINGCFM THEN
  1687.         Macro
  1688.         _Forward_GXPostScriptProcessShape
  1689.             moveq    #54,d0
  1690.             dc.w     $ABFB
  1691.         EndM
  1692.     ELSE
  1693.         IMPORT_CFM_FUNCTION    Forward_GXPostScriptProcessShape
  1694.     ENDIF
  1695.  
  1696. ; ------------------------------------------------------------------------------
  1697. ;
  1698. ;                                            Driver API Functions
  1699. ;
  1700. ;-------------------------------------------------------------------------------- 
  1701. gxMissingImagePointer            EQU        -4
  1702.  
  1703. ;
  1704. ; OSErr GXAddPrinterViewDevice(gxPrinter thePrinter, gxViewDevice theViewDevice)
  1705. ;
  1706.     IF ¬ GENERATINGCFM THEN
  1707.         Macro
  1708.         _GXAddPrinterViewDevice
  1709.             dc.w     $203C
  1710.             dc.w     $0002
  1711.             dc.w     $0000
  1712.             dc.w     $ABFE
  1713.         EndM
  1714.     ELSE
  1715.         IMPORT_CFM_FUNCTION    GXAddPrinterViewDevice
  1716.     ENDIF
  1717.  
  1718. ;
  1719. ; OSErr GXGetAvailableJobFormatModes(gxJobFormatModeTableHdl *theFormatModes)
  1720. ;
  1721.     IF ¬ GENERATINGCFM THEN
  1722.         Macro
  1723.         _GXGetAvailableJobFormatModes
  1724.             dc.w     $203C
  1725.             dc.w     $0002
  1726.             dc.w     $0001
  1727.             dc.w     $ABFE
  1728.         EndM
  1729.     ELSE
  1730.         IMPORT_CFM_FUNCTION    GXGetAvailableJobFormatModes
  1731.     ENDIF
  1732.  
  1733. ;
  1734. ; OSErr GXSetPreferredJobFormatMode(gxJobFormatMode theFormatMode, Boolean directOnly)
  1735. ;
  1736.     IF ¬ GENERATINGCFM THEN
  1737.         Macro
  1738.         _GXSetPreferredJobFormatMode
  1739.             dc.w     $203C
  1740.             dc.w     $0002
  1741.             dc.w     $0002
  1742.             dc.w     $ABFE
  1743.         EndM
  1744.     ELSE
  1745.         IMPORT_CFM_FUNCTION    GXSetPreferredJobFormatMode
  1746.     ENDIF
  1747.  
  1748. ;
  1749. ; OSErr GXPrintingAlert(long iconId, long txtSize, long defaultTitleNum, long cancelTitleNum, long textLength, Ptr pAlertMsg, StringPtr actionTitle, StringPtr title2, StringPtr title3, StringPtr msgFont, ModalFilterUPP filterProc, short *itemHit, StringPtr alertTitle)
  1750. ;
  1751.     IF ¬ GENERATINGCFM THEN
  1752.         Macro
  1753.         _GXPrintingAlert
  1754.             dc.w     $203C
  1755.             dc.w     $0002
  1756.             dc.w     $0003
  1757.             dc.w     $ABFE
  1758.         EndM
  1759.     ELSE
  1760.         IMPORT_CFM_FUNCTION    GXPrintingAlert
  1761.     ENDIF
  1762.  
  1763. ;
  1764. ; OSErr GXGetPrintingAlert(long alertResId, ModalFilterUPP filterProc, short *itemHit)
  1765. ;
  1766.     IF ¬ GENERATINGCFM THEN
  1767.         Macro
  1768.         _GXGetPrintingAlert
  1769.             dc.w     $203C
  1770.             dc.w     $0002
  1771.             dc.w     $0004
  1772.             dc.w     $ABFE
  1773.         EndM
  1774.     ELSE
  1775.         IMPORT_CFM_FUNCTION    GXGetPrintingAlert
  1776.     ENDIF
  1777.  
  1778. ;
  1779. ; OSErr GXFetchDTPData(Str31 dtpName, OSType theType, long theID, Handle *theData)
  1780. ;
  1781.     IF ¬ GENERATINGCFM THEN
  1782.         Macro
  1783.         _GXFetchDTPData
  1784.             dc.w     $203C
  1785.             dc.w     $0002
  1786.             dc.w     $0005
  1787.             dc.w     $ABFE
  1788.         EndM
  1789.     ELSE
  1790.         IMPORT_CFM_FUNCTION    GXFetchDTPData
  1791.     ENDIF
  1792.  
  1793. ;
  1794. ; OSErr GXWriteDTPData(Str31 dtpName, OSType theType, long theID, Handle theData)
  1795. ;
  1796.     IF ¬ GENERATINGCFM THEN
  1797.         Macro
  1798.         _GXWriteDTPData
  1799.             dc.w     $203C
  1800.             dc.w     $0002
  1801.             dc.w     $0006
  1802.             dc.w     $ABFE
  1803.         EndM
  1804.     ELSE
  1805.         IMPORT_CFM_FUNCTION    GXWriteDTPData
  1806.     ENDIF
  1807.  
  1808. ;
  1809. ; OSErr GXHandleChooserMessage(gxJob *aJob, Str31 driverName, long message, long caller, StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  1810. ;
  1811.     IF ¬ GENERATINGCFM THEN
  1812.         Macro
  1813.         _GXHandleChooserMessage
  1814.             dc.w     $203C
  1815.             dc.w     $0002
  1816.             dc.w     $0007
  1817.             dc.w     $ABFE
  1818.         EndM
  1819.     ELSE
  1820.         IMPORT_CFM_FUNCTION    GXHandleChooserMessage
  1821.     ENDIF
  1822.  
  1823.     ENDIF ; __GXPRINTERDRIVERS__
  1824.